package com.wxapp.sale.api.pojo.vm.order;

import com.wxapp.common.constant.base.IBaseResponse;
import com.wxapp.sale.api.enums.order.OrderSourceEnum;
import com.wxapp.sale.api.enums.order.OrderStateEnum;
import com.wxapp.sale.api.enums.order.OrderTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author lgl
 * @Description 订单基础类
 * @Datetime 2023/1/3 15:25
 * @Modified By
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class PBaseVm extends IBaseResponse {
    /**
     * 订单编号
     */
    @Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED)
    private String code;

    /**
     * 订单类型
     */
    @Schema(description = "订单类型", requiredMode = Schema.RequiredMode.REQUIRED)
    private OrderTypeEnum type;

    /**
     * 订单状态
     */
    @Schema(description = "订单状态", requiredMode = Schema.RequiredMode.REQUIRED)
    private OrderStateEnum orderState;

    /**
     * 订单来源
     */
    @Schema(description = "订单来源", requiredMode = Schema.RequiredMode.REQUIRED)
    private String orderResource;

    /**
     * 订单价格/积分
     */
    @Schema(description = "订单价格/积分", requiredMode = Schema.RequiredMode.REQUIRED)
    private BigDecimal price;

    /**
     * 折扣金额/积分
     */
    @Schema(description = "折扣金额/积分", requiredMode = Schema.RequiredMode.REQUIRED)
    private BigDecimal discountPrice;

    /**
     * 支付方式
     */
    @Schema(description = "支付方式", requiredMode = Schema.RequiredMode.REQUIRED)
    private String payWay;

    /**
     * 支付时间
     */
    @Schema(description = "支付时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime payTime;

    /**
     * 过期时间
     */
    @Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime orderOverTime;

    /**
     * 支付账号
     */
    @Schema(description = "支付账号", requiredMode = Schema.RequiredMode.REQUIRED)
    private String payAccount;

    /**
     * 订单取消关闭原因
     */
    @Schema(description = "订单取消关闭原因", requiredMode = Schema.RequiredMode.REQUIRED)
    private String reason;

    /**
     * 备注
     */
    @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED)
    private String remark;

    /**
     * 订单来源
     */
    @Schema(description = "订单来源", requiredMode = Schema.RequiredMode.REQUIRED)
    private OrderSourceEnum orderSource;




}
